Partnerzy
PolProg
Lomsel
KonradVme

Serwer sponsoruje

Certyfikaty

Valid HTML 4.01!
Valid CSS!

Delphi - pliki INI

Witam! W tym artykule postaram się nauczyć was jak obsługiwać pliki *.ini w Delphi. Pliki te służą do przechowywania krótkich informacji, na przykład konfiguracji programu. Aby móc korzystać z opisywanych poniżej funkcji, należy do listy modułów dodać bibliotekę IniFiles:

uses
Windows, Messages, SysUtils, Variants, (...), Dialogs, IniFiles;

Plik INI ma następującą budowę:

[SEKCJA]
NazwaKlucza=wartość
InnaNazwa=wartość
[INNA_SEKCJA]
NazwaKlucza=wartość
InnaNazwa=wartość

Zresztą wystarczy odnaleźć na własnym dysku dowolny plik *.ini żeby się o tym przekonać... Możemy tworzyć tyle sekcji i wartości ile nam potrzeba - byle nazwy się nie powtarzały. Korzystanie z takich plików nie jest specjalnie skomplikowane - zresztą zobaczycie sami...

Zapisywanie do pliku INI:

Najpierw zajmiemy się zapisywaniem danych do pliku INI. Załóżmy że na formie znajdują się dwa pola typu edit (o standardowych nazwach - edit1 i edit2), których zawartość ma być zapamiętywana przy wyjściu. Tak więc w akcji OnClose formy wpisujemy:

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
var
  PlikINI: TIniFile;
begin
  PlikINI := TIniFile.Create('nazwa.ini');
  PlikINI.WriteString('POLA_EDIT', 'Pole1', Edit1.text);
  PlikINI.WriteString('POLA_EDIT', 'Pole2', Edit2.text);
  PlikINI.Free;
end;

To wystarczy, żeby zapisać do pliku wartości obu pól. Tak utworzony plik będzie wyglądał następująco:

[POLA_EDIT]
Pole1=To co wpisaliśmy w edit1
Pole2=To co wpisaliśmy w edit2

No więc po kolei. Najpierw zadeklarowaliśmy zmienną PlikINI (nazwa oczywiście dowolna) jako TIniFile. Potem w TIniFile.Create określiliśmy który plik chcemy modyfikować. Następnie zapisaliśmy w nim dwie wartości podając po kolei nazwę sekcji, nazwę klucza i wartość. Potem zamknęliśmy plik. Teraz jeszcze o nazwie pliku - jeśli tak jak zrobiłem to w przykładzie wpiszemy samą nazwę, bez ścieżki, program otworzy plik ze ścieżki z systemem (najczęściej C:\Windows). Jeśli chcemy aby plik INI znajdował się w tym samym katalogu co program, to jako ścieżkę musimy wpisać:

ExtractFilePath(Application.ExeName)+'nazwa.ini'

Odczytywanie wartości z pliku:

Dobrze, umiemy już zapisywać dane do pliku, ale jak je odczytać? Otóż nie jest to wcale takie trudne. Służy do tego funkcja ReadString. W przykładzie podam kod, który po starcie programu wczyta zapisane wcześniej (w pierwszym przykładzie) wartości dwóch pól edit. W akcji OnCreate wpisujemy:

procedure TForm1.FormCreate(Sender: TObject);
var
  PlikINI: TIniFile;
begin
  PlikINI := TIniFile.Create('nazwa.ini');
  Edit1.text:=PlikINI.ReadString('POLA_EDIT', 'Pole2', 'Pierwsze pole');
  Edit2.text:=PlikINI.ReadString('POLA_EDIT', 'Pole2', 'Drugie pole');
  PlikINI.Free;
end;

Jako pierwszy parametr funkcji ReadString podajemy sekcję, jako drugi nazwę klucza a jako trzeci - wartość jaka ma być wczytana jeśli nie znaleziono klucza (na przykład przy pierwszym uruchomieniu programu). I tyle... Sami widzicie, że to nic trudnego. Po połączeniu przykładu pierwszego z drugim, powstanie program który zapamiętuje wartości obu pól i wczytuje je po uruchomieniu. I kod takiego programu załączam - jest tutaj. Jeśli czegoś nie rozumiecie albo coś nie wychodzi - piszcie na maila. Tymczasem żegnam się...

Typhoon
typhoon5@o2.pl

 

Spis treści Redakcja @t Newsy
Software Hardware Internet Webmastering System Programowanie Grafika Telefonia Film Gry Magazyn Humor

Spis treści